The prior art describes various systems and methods for correcting errors. U.S. Pat. No. 4,525,838, entitled "Multibyte Error Correcting System Involving a Two-Level Code Structure" by the inventor hereof and assigned to the assignee hereof is pertinent, provides other relevant references, and is hereby incorporated by reference as if fully set forth herein.
Present day disk file manufacturers employ a number of different approaches to minimizing the number of errors that may occur during the readback process. Most disk file media undergo a thorough surface analysis test to identify defective areas before the disk is incorporated into the drive. Those disks having defects above a certain predetermined criteria are rejected.
In addition, subsystems are provided in many disk file devices which, based on defect data stored on a disk, cause the drive to avoid a bad track, a bad sector, or a defective area of a disk track during operation. Bad areas of the media are simply skipped during the storage of data on the track. Other subsystems cause the device to reread the data when an error is detected. The rereading operation is performed under slightly different operating conditions each time, such as offsetting the transducer from the center of the track or increasing the gain of the read amplifier until, hopefully, the error is corrected during the rereading process.
Since addition of an error-correcting subsystem adversely impacts overall system performance, it is important to minimize the number of errors that have to be corrected and the time it takes to correct them. In addition, the more errors which must be corrected, the more otherwise usable storage capacity rs wasted.
Typically, subsystems which correct only single errors are used in current disk files. A single error, by definition, may include a burst-type error in which a group of contiguous bit positions are affected. However, two separate burst errors, or even widely spaced single bit errors, cannot be corrected by such single error-correcting subsystems.
It is well known that all the different error patterns which occur in one byte of a multibyte codeword are correctable using a reasonable amount of redundancy. It has also been recognized that by interleaving codewords, a burst error which extends longer than one byte may be corrected.
It is also known that a multibyte, error-correcting system may be provided in accordance with the teaching of U.S. Pat. No. 4,494,234 entitled "On-the-Fly Multibyte Error Correcting System", by the inventor hereof and assigned to the assignee of the present invention.
One of the main reasons multibyte error-correcting subsystems have not been readily adopted for use in disk files is the constraints imposed on block size or codeword by various error correcting codes in use today. A codeword is typically limited to 2.sup.b bytes where b is the number of bit positions in the byte configuration adopted for the system. Where the byte consists of eight bits, which is substantially the present standard in the data processing industry, the codeword is usually limited to 255 bytes. It is further recognized that for each byte error to be corrected in a codeword of 255 bytes, two check bytes must be associated with the codeword for each byte error. Thus, if the error correcting code (ECC) is designed to correct five byte errors in each codeword, then ten check byte positions must be allocated out of the 255 byte positions. Obviously, where redundancy becomes so high, the overall useful storage capacity of the disk file is severely restrrcted.
Besides adversely affecting useful storage capacity, the relatively small block size also imposes many undesirable constraints in the design of the data format that is used on the track. Conventional coding techniques, such as multiple error correcting Reed-Solomon or BCH codes discussed in the prior art, while very efficient in terms of mathematical redundancy, impose algebraic constraints on the size of the codeword for a given choice of byte size. Thus, in a practical application of 8-bit bytes in the presence of high error rates, the redundancy is often still unacceptable.
A two-level, multibyte error-correcting subsystem for correcting errors occurring in more than one byte is taught in U.S. Pat. No. 4,525,838 by the inventor hereof and assigned to the assignee of the present invention. However, for that subsystem, if the number of errors occurring in any one subblock exceeds the error-correction capability at the subblock level, the codeword may be miscorrected at the subblock-level. When the miscorrection is detected at the block-level, the miscorrected subblock is restored to its original condition before such errors are corrected at the block-level. Moreover, the subsystem of that patent will not make corrections as described unless all other subblocks are error-free or the number of errors occurring in all other subblocks are correspondingly reduced to below the subblock-level error-correction capability by the same amount as the number of excess errors in one subblock.